<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><link rel="stylesheet" type="text/css" href="markdown.css"></link></head><body>
</body></html><h1>摇一摇截屏相关功能 -- 集成文档</h1>
<ul>
<li>1.<a href="#social_shake">添加摇一摇截屏分享所需的依赖</a></li>
<li>2.<a href="#shake_config">摇一摇相关各种功能，请按需集成</a><ul>
<li>2.1 <a href="#social_shake_func">摇一摇截图分享</a><ul>
<li>2.1.1 <a href="#social_shake_register">注册监听摇一摇事件</a></li>
<li>2.1.2 <a href="#social_shake_app">普通应用程序</a></li>
<li>2.1.3 <a href="#social_shake_game">使用Cocos2d的游戏</a></li>
<li>2.1.4 <a href="#social_shake_player">使用MediaPlayer播放视频的应用</a></li>
<li>2.1.5 <a href="#social_shake_others">其他使用场景</a></li>
<li>2.1.6 <a href="#social_shake_done">效果图</a></li>
</ul>
</li>
<li>2.2 <a href="#social_shake_openshare">摇一摇打开分享面板</a></li>
<li>2.3 <a href="#social_shake_unregister">注销摇一摇监听</a></li>
<li>2.4 <a href="#social_shake_scrshot">摇一摇接口</a></li>
<li>2.5 <a href="#social_scrshot">屏幕截图接口</a></li>
<li>2.6 <a href="#social_scrshot_share">截图后分享</a></li>
<li>2.7 <a href="#social_shake_config">摇一摇灵敏度设置</a></li>
</ul>
</li>
<li>3.<a href="#support">技术支持</a>  </li>
</ul>
<hr />
<h1>1 添加摇一摇截屏分享所需的依赖 <b id=social_shake></b></h1>
<p>我们将摇一摇的资源放到UMSocial_Sdk_Extra_Frameworks/UMSocial_Shake_Sdk和UMSocial_Sdk_Extra_Frameworks/UMSocial_ScreenShot_Sdk这两个文件夹下，包括：    </p>
<ul>
<li>
<p>UMSocial_Shake_Sdk下的libUMSocial_Sdk_Shake_x.x.a和UMSocial_ScreenShot_Sdk下的libUMSocial_Sdk_ScreenShot_x.x.a，分别表示摇一摇的sensor和截屏工具库；     </p>
</li>
<li>
<p>注意：使用截屏SDK，需要添加OpenGLES.framework和MediaPlayer.framework。添加方法:选你的target-&gt;Build Phases-&gt;Link Binary With Libraries-&gt;添加OpenGLES.framework、MediaPlayer.framework。</p>
</li>
</ul>
<p>请按您需要的功能模块添加分享组件，资源包。  </p>
<table>
<thead>
<tr>
<th align="center">功能</th>
<th align="center">需集成分享组件</th>
<th align="center">需libUMSocial_Sdk_Shake.a</th>
<th align="center">需libUMSocial_Sdk_ScreenShot.a</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">摇一摇截屏分享</td>
<td align="center">是</td>
<td align="center">是</td>
<td align="center">是</td>
</tr>
<tr>
<td align="center">摇一摇打开分享面板</td>
<td align="center">是</td>
<td align="center">是</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">直接截屏</td>
<td align="center"></td>
<td align="center"></td>
<td align="center">是</td>
</tr>
<tr>
<td align="center">截屏-分享</td>
<td align="center">是</td>
<td align="center"></td>
<td align="center">是</td>
</tr>
</tbody>
</table>
<h1>2 摇一摇相关各种功能，请按需集成<b id=shake_config></b></h1>
<h2>2.1 摇一摇截图分享 <b id=social_shake_func></b></h2>
<h3>2.1.1 注册监听摇一摇事件，默认摇一摇后，自动截屏并弹出分享页面 <b id=social_shake_register></b></h3>
<pre><code>/**
 设置响应摇一摇事件，并且弹出分享页面

 @param snsTypes 要分享的平台类型名，例如@[UMShareToSina,UMShareToTencent,UMShareToWechatSession]
 @param shareText 分享内嵌文字
 @param screenShoter 摇一摇分享用到的截屏对象
 @param controller  出现分享界面所在的ViewController
 @param delegate 实现摇一摇后，或者分享完成后的回调对象，如果不处理这些事件，可以设置为nil
 */
+(void)setShakeToShareWithTypes:(NSArray *)snsTypes
                      shareText:(NSString *)shareText
                   screenShoter:(UMSocialScreenShoter *)screenShoter
               inViewController:(UIViewController *)controller
                       delegate:(id&lt;UMSocialShakeDelegate&gt;)delegate;
</code></pre>

<h3>2.1.2 普通应用注册摇一摇截图分享  <b id=social_shake_app></b></h3>
<p>[UMSocialScreenShoterDefault screenShoter]为普通应用的截屏适配器，负责截屏操作，示例代码如下:</p>
<pre><code>  [UMSocialShakeService setShakeToShareWithTypes:@[UMShareToSina,UMShareToWechatSession]
                                         shareText:@&quot;你的分享文字&quot;
                                      screenShoter:[UMSocialScreenShoterDefault screenShoter]
                                  inViewController:self
                                          delegate:nil];  
</code></pre>

<p><a href="#social_shake_unregister"><strong>注意在离开此视图时解除监听摇一摇事件</strong></a></p>
<h3>2.1.3 使用Cocos2d开发的游戏注册摇一摇截图分享   <b id=social_shake_game></b></h3>
<p><code>[UMSocialScreenShoterCocos2d screenShoterFromEaglView:[CCDirector sharedDirector].view]</code>为cocos2d游戏的截屏适配器，负责截屏操作，示例代码如下:</p>
<pre><code>   AppController *app = (AppController*) [[UIApplication sharedApplication] delegate];
   [UMSocialShakeService setShakeToShareWithTypes:@[UMShareToSina,UMShareToTencent,UMShareToWechatSession] shareText:@&quot;test&quot; screenShoter:[UMSocialScreenShoterCocos2d screenShoterFromEaglView:[CCDirector sharedDirector].view] inViewController:[app navController] delegate:nil];
</code></pre>

<p><a href="#social_shake_unregister"><strong>注意在离开此视图时解除监听摇一摇事件</strong></a>      </p>
<h3>2.1.4 使用MediaPlayer播放视频的应用实现摇一摇截图分享   <b id=social_shake_player></b></h3>
<p>如果使用iOS系统的MediaPlayer播放器，播放本地视频，可以用下面的方式得到截图分享。   </p>
<pre><code>//player为你当前的'MPMoviePlayerController'播放器对象
[UMSocialShakeService setShakeToShareWithTypes:@[UMShareToSina,UMShareToWechatSession]
                                         shareText:@&quot;你的分享文字&quot;
                                      screenShoter:[UMSocialScreenShoterMediaPlayer screenShoterFromMoviePlayer:player]
                                  inViewController:self
                                          delegate:nil]; 
</code></pre>

<p>若需要截取流媒体图像，则需开发者自行获取到视频图像，并且通过自定义截图适配器的方式将图像返回. <br />
<a href="#social_shake_unregister"><strong>注意在离开此视图时解除监听摇一摇事件</strong></a>      </p>
<h3>2.1.5 其他使用场景实现摇一摇截图分享   <b id=social_shake_others></b></h3>
<p>设置响应摇一摇回调，并在回调中设置截图，示例代码如下：</p>
<pre><code>-(UMSocialShakeConfig)didShakeWithShakeConfig
{
    //相应摇一摇后，你可以用自己的播放器得到截图
    [UMSocialShakeService setScreenShotImage:[UIImage imageNamed:@&quot;UMS_social_demo&quot;]];
    return UMSocialShakeConfigDefault;
}
//下面注册响应摇一摇动作
  [UMSocialShakeService setShakeToShareWithTypes:@[UMShareToSina,UMShareToTencent,UMShareToWechatSession,UMShareToWechatTimeline]
                                         shareText:shareText
                                      screenShoter:nil
                                  inViewController:self
                                          delegate:self];  
</code></pre>

<p><a href="#social_shake_unregister"><strong>注意在离开此视图时解除监听摇一摇事件</strong></a>  </p>
<h3>2.1.6 摇一摇截图分享效果图   <b id=social_shake_done></b></h3>
<p><img src="http://dev.umeng.com/system/images/W1siZiIsIjIwMTMvMTAvMjkvMTdfMjlfMzFfMTQ1X3NoYWtlXzIucG5nIl1d/shake_2.png" width="640" height="400" style="border:3 solid #ffCCCC">   </p>
<h2>2.2 摇一摇打开分享面板   <b id=social_shake_openshare></b></h2>
<p>使用上面的方法摇一摇功能后，用户可以需要摇一摇手机，即可打开友盟的分享面板，不需要用户点击相关的按钮调出分享面板，用户体验较好。
示例代码如下:    </p>
<pre><code>  [UMSocialShakeService setShakeToShareWithTypes:nil
                                         shareText:nil
                                      screenShoter:nil
                                  inViewController:self
                                          delegate:self];  
//在摇一摇的回调方法弹出分享面板                                          
-(UMSocialShakeConfig)didShakeWithShakeConfig
{
    [UMSocialSnsService presentSnsIconSheetView:self appKey:UmengAppkey shareText:@&quot;你的分享文字&quot; shareImage:shareImage shareToSnsNames:@[UMShareToSina,UMShareToTencent,UMShareToWechatSession,UMShareToWechatTimeline] delegate:nil];
//下面返回值控制是否显示分享编辑页面、是否显示截图、是否有音效，UMSocialShakeConfigNone表示都不显示
    return UMSocialShakeConfigNone;
}
</code></pre>

<h2>2.3  注销摇一摇监听 <b id=social_shake_unregister></b></h2>
<p>不需要响应摇一摇动作调用如下代码：        </p>
<pre><code>   [UMSocialShakeService unShakeToSns];
</code></pre>

<h2>2.4 摇一摇接口   <b id=social_shake_scrshot></b></h2>
<p>若使用摇一摇功能，直接使用iOS系统提供的监听摇一摇事件回调，你可以在当前ViewController视图控制器中使用下面的代码:        </p>
<pre><code>-(BOOL)canBecomeFirstResponder {
    return YES;
}
-(void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    //设置第一响应者
    [self becomeFirstResponder];
}
//在响应摇一摇动作方法内得到屏幕截图
-(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent*)event
{
    if(motion == UIEventSubtypeMotionShake)
    {
        //下面使用应用类型截屏，如果是cocos2d游戏或者其他类型，使用相应的截屏对象
        //UIImage *image = [[UMSocialScreenShoterDefault screenShoter] getScreenShot];
    }
}
</code></pre>

<h2>2.5 屏幕截图接口   <b id=social_scrshot></b></h2>
<p>该功能为直接截取用户的屏幕图像,要使用该功能需要将UMSocial_ScreenShot_Sdk文件夹下的库文件和头文件添加到工程中,示例如下:</p>
<pre><code>//下面是应用类型的截图，如果是游戏或者其他方式截图，请参考2.1.4 和2.1.5 
    UIImage *image = [[UMSocialScreenShoterDefault screenShoter] getScreenShot];
</code></pre>

<h2>2.6 截图后分享   <b id=social_scrshot_share></b></h2>
<p>该功能是在用户打开分享面板时，将要分享的图像内容替换为当前应用截图，要使用该功能需要将
UMSocial_ScreenShot_Sdk文件夹添加到工程的中，示例如下:</p>
<pre><code>    UIImage *image = [[UMSocialScreenShoterDefault screenShoter] getScreenShot];
    [UMSocialSnsService presentSnsIconSheetView:self appKey:UmengAppkey shareText:@&quot;分享文字&quot; shareImage:image shareToSnsNames:nil delegate:nil];
</code></pre>

<h2>2.7 摇一摇灵敏度设置   <b id=social_shake_config></b></h2>
<pre><code>可根据应用类型灵活设置响应摇一摇事件的灵敏度,示例如下：
</code></pre>
<pre><code>    //可以设置响应摇一摇阈值，数值越低越灵敏，默认是0.8
    [UMSocialShakeService setShakeThreshold:1.5];
</code></pre>

<h1>3 技术支持   <b id=support></b></h1>
<p>请发邮件至social-support@umeng.com。如果您出现的问题和SDK相关，请说明您使用的是iOS的SDK，我们会尽快回复您。</p>